Astrofísica Computacional
Ejercicios 06. Volúmenes Finitos. Advección multi-dimensional

A. Solución de la ecuación de advección lineal 1D.

La ecuación de advección lineal en una dimensión es \begin{equation} \frac{\partial \psi}{\partial t} + v \frac{\partial \psi}{\partial x} = 0\,, \end{equation} donde la velocidad de advección , $v$, es una constante.

  1. Implemente un código que resuelva numéricamente esta ecuación utilizando el método de volúmenes finitos. Considere como condición inicial un perfil gaussiano, \begin{equation} \Psi_0 = \psi(x, t=0) = e^{-\frac{(x - x_0)^2}{2\sigma^2}}\,, \end{equation} con $x_0 = 30$, $\sigma = \sqrt{15}$ y un perfil sinusoidal \begin{equation} \Psi_0 = \psi(x, t=0) = \sin{\left(\frac{4\pi x}{L}\right)} \end{equation} con $L=100$. En los dos casos, considere una velocidad de advección constante positiva $v=0.2$ y resuelva en el dominio espacial $x \in \left[0,100\right]$ para un intervalo temporal con $t \in [0,1000]$. Implemente condiciones de frontera periódicas en los dos casos.

B. Advección Multidimensional

La ecuación de avección lineal 2-dimensional es \begin{equation} \partial_t\pi + v^x \partial_x\psi + v^y \partial_y\psi = 0\,, \end{equation} donde $v^x$ y $v^y$ son las componentes de la velocidad en las direcciones $x$ y $y$, respectivamente.

  1. Resuelva numéricamente la ecuación de advección 2-dimensional mediante el método de volúmenes finitos considerando un perfil inicial Gaussiano, \begin{equation} \Psi_0 = \psi(t=0, x, y) = e^{-\frac{(x-x_0)^2 + (y-y_0)^2}{2\sigma^2}} \end{equation} donde $x_0 = 20$, $y_0 = 30$, $\sigma = \sqrt{20}$ y considerando $v^x = 0.8$, $v^y = 1.0$ en el dominio espacial $x \in [0, 100]$ y $y \in [0,100]$. Además implemente la posibilidad de condiciones de frontera de gradiente nulo (outflow) y periódicas.

Desarrollo

A.1. Primero que todo cargamos las librerías que se van a utilizar

Posteriormente escribimos la función que dará el perfil inicial gaussiano del comportamiento que estamos describiendo, junto con los intervalos y pasos de tiempo y posición en los que vamos a analizar el comportamiento de nuestro método numérico.

Así, establecido nuestro dominio espacial y temporal junto con el grid respectivo de cada uno de ellos, implementamos la función de integración de la ecuación diferencial de advección por el método de volúmenes finitos.

Este método tiene implementadas ambas condiciones, tanto upwind como downwind, luego funciona para valores positivos y negativos de velocidad. Cabe mencionar que para calcular las derivadas en los extremos para el paso intermedio no se usó la derivada centrada sino la derivada por derecha para upwind y la derivada por derecha para downwind, de tal manera que estas se pudieran hacer con valores conocidos de la función en el paso anterior.

Ahora utilizamos la misma función de integración pero ahora estableciendo un perfil sinusoidal

B.1

Establecemos la función de perfil inicial gaussiano en dos dimensiones y el dominio de integración.

Empleando el método de división dimensional para la evolución mediante volúmenes finitos usando el algoritmo:

definimos entonces la función de integración mediante volúmenes finitos FV2D tal que se simula numéricamente la advección 2D de un perfil gaussiano con condiciones de frontera outflow por un lado y luego se simula con condiciones de frontera periódicas.

Una vez guardados todos los perfiles para los distintos pasos de tiempo en la simulación se procede a graficar la evolución mediante un heatmap.